package nb.com.annotation;


import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 限流器注解
 * @author nb
 * @version 1.0
 * @date 2021/11/2 23:37
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
  public @interface TokensLimiter {
    /**
     * 时间单位 默认为秒
     *
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;

    /**
     * 限制规则
     */
//    LimiterRule limiterRule()  LimiterRule.TOKEN;

    /**
     * 时间数量
     */
    long timeNum() default 1L;
    /**
     * 限制最大次数
     */
    long max() default 1L;

    /**
     * key
     */
    String key();
}
